package cn.tedu.oop2;
/**本类用作静态static的入门案例
 * 0.被static修饰的资源统称为静态资源
 * 静态资源是随着类加载而加载到内存中，比对象优先进入内存
 * 类加载先加载静态资源，随着创建对象后，才加载普通资源
 * 所以，静态资源可以不通过对象，直接通过类名调用*/
public class TestStatic1 {
    public static void main(String[] args) {
        //5.通过类名直接调用静态资源
        System.out.println(Fruit.kind);
        Fruit.clean();

        //4.创建水果类的对象
        Fruit f1=new Fruit();
        Fruit f2=new Fruit();
        f1.grow();//不静态，可以使用对象直接点出来
        f1.clean();
        System.out.println(f1.kind);
        System.out.println(f1.weight);
        //7.修改普通属性的值
        /**3.静态资源在内存中只有一份，而且挥别全局所有对象共享
         * 所以：不管我们使用哪种方式修改了静态变量的值，使用任何方式来查看
         * 都是静态变量刚刚被修改了的值*/
        f1.price=6.6;
        System.out.println(f1.price);//6.6
        System.out.println(f2.price);//0.0
        Fruit.kind="苹果";
        System.out.println(Fruit.kind);
        System.out.println(f1.kind);
        System.out.println(f2.kind);
        System.out.println("---------------");
        f1.kind="猕猴桃";
        System.out.println(Fruit.kind);
        System.out.println(f1.kind);
        System.out.println(f2.kind);
        System.out.println("---------------");
        f2.kind="草莓";
        System.out.println(Fruit.kind);
        System.out.println(f1.kind);
        System.out.println(f2.kind);
        System.out.println("---------------");



    }
}
//1.创建水果类
class Fruit{
    //2.定义属性
    /**1.static可以用来修饰成员变量*/
    static String kind;
    static double weight;
    double price;
    final int MIN_VALUE=1;

    //3.定义方法
    /**2.static可以用来修饰方法*/
    public static void clean(){
        System.out.println("洗水果呀洗水果~");
    }
    public void grow(){
        System.out.println("这个果子长的一看就很好吃~");
    }
}